#include "PCH.h"
#include "DeShaderType.h"
#include "ShaderFactory.h"
using namespace DeviousRenderer;

DeShaderType::DeShaderType(const std::wstring& sourceFileName, const std::string& functionName, EShaderType shaderType)
	: m_sFileName(sourceFileName)
	, m_sFunctionName(functionName)
	, m_eShaderType(shaderType)
{
	GetTypeList()->push_back(this);
}

DeShaderType::~DeShaderType()
{
}

std::vector<DeShaderType*>* DeShaderType::GetTypeList()
{
	static std::vector<DeShaderType*>* TypeList = NULL;
	return TypeList;
}

void DeShaderType::CompileShader()
{
	ID3DBlob* compiledShader  = ShaderFactory::CompileShader(m_eShaderType, m_sFileName, m_sFunctionName, m_Enviroment);

}

DeGlobalShaderType::DeGlobalShaderType(const std::wstring& sourceFileName, const std::string& functionName)
	: DeShaderType(sourceFileName, functionName)
{

}

DeGlobalShaderType::~DeGlobalShaderType()
{

}